package com.liliudong.template.biz.service.sys;

import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liliudong.template.common.dto.sys.SysDeptAddDTO;
import com.liliudong.template.common.dto.sys.SysDeptUpdateDTO;
import com.liliudong.template.common.entity.sys.SysDept;
import com.liliudong.template.common.vo.sys.SysDeptDetailVO;

import java.util.List;

/**
 * 系统部门服务
 *
 * @author ldli5
 * @date 2024/06/21
 */
public interface SysDeptService extends IService<SysDept>{


	/**
	 * 添加一个
	 *
	 * @param sysDeptAddDTO 系统部门添加或更新dto
	 */
	void addOne(SysDeptAddDTO sysDeptAddDTO);

	/**
	 * 按id删除
	 *
	 * @param id 身份证件
	 */
	void deleteById(Long id);

	/**
	 * 按id修改
	 *
	 * @param id                    身份证件
	 * @param sysDeptUpdateDTO 系统部门添加或更新dto
	 */
	void modifyById(Long id, SysDeptUpdateDTO sysDeptUpdateDTO);

	/**
	 * 树
	 *
	 * @return {@link List }<{@link Tree }<{@link Long }>>
	 */
	List<Tree<Long>> tree();

	/**
	 * id明细
	 *
	 * @param id 身份证件
	 * @return {@link SysDeptDetailVO }
	 */
	SysDeptDetailVO detailById(Long id);
}
